package com.tarena.lbs.message.web.service;

import com.tarena.lbs.base.protocol.pager.BasePageList;
import com.tarena.lbs.pojo.message.dos.Msg;
import com.tarena.lbs.pojo.message.dos.TriggerMsgActionTemplate;
import com.tarena.lbs.pojo.message.param.TriggerMessageQueryParam;
import com.tarena.lbs.pojo.message.query.MessageQuery;
import com.tarena.lbs.pojo.message.vo.MessageVo;
import java.util.List;

/**
 * 消息业务层
 */
public interface MsgService {
    /**
     * 查询用户新的未读消息
     * @param messageQuery 查询参数
     * @return
     */
    public List<MessageVo> selectUserNewMessage(MessageQuery messageQuery);

    /**
     * 查询用户的所有消息包括定时消息，未读消息，已读消息
     * @return
     */
    public List<Msg> selectAll();

    /**
     * 根据定时任务编号查询定时任务的所有消息
     * @param timingMsgTaskId 定时任务编号
     * @return
     */
    List<Msg> selectByTimingMsgTaskId(Integer timingMsgTaskId);

    /**
     * 更新消息的状态
     * @param msg 消息
     * @return
     */
    boolean updateMsgStatus(Msg msg);

    /**
     * 删除消息
     * @param id 消息编号
     * @return
     */
    boolean deleteById(Long id);

    BasePageList<TriggerMsgActionTemplate> getActionAll(TriggerMessageQueryParam param);
}
